package User;

import operation.IOperation;

/**
 * 用户抽象类：
 *      包含角色所具备的操作功能集合对象属性、菜单显示抽象方法、操作抽象方法
 */
public abstract class User {
    protected String accountId; //账户id
    protected String password; //账号密码
    protected String name;//账户姓名

    protected IOperation[] iOperations; //账户功能集合

    //空参构造方法
    public User() {
    }

    //公共接口
    public String getAccountId() {
        return accountId;
    }

    public void setAccountId(String accountId) {
        this.accountId = accountId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract int menu(); //角色菜单目录

    /**
     * 执行指定菜单序号功能
     * @param num 指定序号
     * @return 界面状态
     */
    public boolean operate(int num){
        return iOperations[num - 1].operate(this);
    }



}
